{% extends 'base.html' %}
{% block title %}任务详情{% endblock %}
{% block head %}
{% endblock %}
{% block body %}

    <div class="container" style="background-color: #ffffff;padding: 0;flex: 1;">
        <h1>{{ task.task_name }}</h1>
        <p><strong>任务类型:</strong> {{ task.task_type }}</p>
        <p><strong>监控话题:</strong> {{ task.topic }}</p>
        <p><strong>开始时间:</strong> {{ task.start_time }}</p>
        <p><strong>结束时间:</strong> {{ task.end_time }}</p>


        <button id="taskButton" type="button" class="btn " onclick="toggleTaskStatus({{ task.id }})"></button>
        <button id="reloadButton" type="button" class="btn" onclick="reloadTask({{ task.id }})">重启任务</button>
        <h2>监控视频列表:</h2>
        <div class="container">
            {% for video in videos %}
                <div class="card mb-3" onclick="window.location='/video/detail/{{ video.bvid }}';"
                     style="cursor:pointer;">
                    <div class="card-body">
                        <h5 class="card-title">视频标题: {{ video.video_name }}</h5>
                        <p class="card-text">AV号: {{ video.aid }}</p>
                        <p class="card-text">BV号: {{ video.bvid }}</p>
                        <p class="card-text">最近评论时间: {{ video.last_comment_time }}</p>
                        <p class="card-text">评论数量: {{ video.comment_count }}</p>
                        <p class="card-text">涉及歧视评论数: {{ video.violence_count }}</p>
                        <p class="card-text">涉及讽刺评论数: {{ video.sarcasm_count }}</p>
                        <p class="card-text">涉及网络暴力评论数: {{ video.did_violence_count }}</p>
                    </div>
                </div>
            {% endfor %}
        </div>


        <!-- 触发删除确认模态框的按钮 -->
        <button type="button" class="btn btn-danger" data-toggle="modal" data-target="#deleteConfirmModal">
            删除
        </button>

    </div>


{% endblock %}

{% block js %}
    <script type="text/javascript" src="{{ url_for('static', filename='js/jquery-3.6.0.min.js') }}"></script>
    <script type="text/javascript"
            src="{{ url_for('static', filename='plugins/bootstrap-4.6.2-dist/js/bootstrap.min.js') }}"></script>
    <script>
        let button = document.getElementById('taskButton');
        let isTaskActive = {{ task.is_active|lower }};
        $(document).ready(function () {
            if (isTaskActive) {
                button.classList.add('btn-danger');
                button.textContent = '停止任务';
            } else {
                button.classList.add('btn-success');
                button.textContent = '激活任务';
            }
        })


        function toggleTaskStatus(monitor_id) {
            // 激活任务的操作
            if (button.classList.contains('btn-success')) {
                $.ajax({
                    url: "/task/active_tasks/" + monitor_id,
                    type: "GET",
                    contentType: "application/json"
                }).done(function (response) {
                    // 操作成功的逻辑
                    if (response['status'] === 'success') {
                        console.log(response); // 打印成功的响应
                        button.classList.remove('btn-success');
                        button.classList.add('btn-danger');
                        button.textContent = '停止任务';
                    }
                }).fail(function (jqXHR, textStatus, errorThrown) {
                    // 请求失败的处理
                    console.error("Request failed: " + textStatus + ", " + errorThrown);
                    if (jqXHR.status) {
                        switch (jqXHR.status) {
                            case 404:
                                alert("未找到指定的监控任务。");
                                break;
                            case 500:
                                alert("服务器错误，请稍后重试。");
                                break;
                            default:
                                alert("发生未知错误，请联系管理员。");
                        }
                    } else {
                        alert("发生未知错误，请检查网络连接。");
                    }
                });
                // 关闭任务的操作
            } else {
                $.ajax({
                    url: "/task/stop_tasks/" + monitor_id,
                    type: "GET",
                    contentType: "application/json"
                }).done(function (response) {
                    // 请求成功的处理
                    if (response['status'] === 'success') {
                        console.log(response);
                        // 操作成功的逻辑
                        button.classList.remove('btn-danger');
                        button.classList.add('btn-success');
                        button.textContent = '激活任务';
                    } else {
                        // 操作失败
                        console.log(response);
                        alert(response.message);
                    }
                }).fail(function (jqXHR, textStatus, errorThrown) {
                    // 请求失败的处理
                    console.error("Request failed: " + textStatus + ", " + errorThrown);
                    if (jqXHR.status) {
                        switch (jqXHR.status) {
                            case 404:
                                alert("未找到指定的监控任务。");
                                break;
                            case 500:
                                alert("服务器错误，请稍后重试。");
                                break;
                            default:
                                alert("发生未知错误，请联系管理员。");
                        }
                    } else {
                        alert("发生未知错误，请检查网络连接。");
                    }
                });
            }
        }

        function reloadTask(monitor_id) {
            $.ajax({
                url: "/task/restart_task/" + monitor_id,
                type: "GET",
                contentType: "application/json"
            }).done(function (response) {
                // 操作成功的逻辑
                if (response['status'] === 'success') {
                    console.log(response); // 打印成功的响应
                    $('#noticeMessage').text("成功重启任务");
                    $('#noticeModal').modal('show'); // 展示删除成功提示模态框
                }
            }).fail(function (jqXHR, textStatus, errorThrown) {
                // 请求失败的处理
                console.error("Request failed: " + textStatus + ", " + errorThrown);
                if (jqXHR.status) {
                    switch (jqXHR.status) {
                        case 404:
                            alert("未找到指定的监控任务。");
                            break;
                        case 500:
                            alert("服务器错误，请稍后重试。");
                            break;
                        default:
                            alert("发生未知错误，请联系管理员。");
                    }
                } else {
                    alert("发生未知错误，请检查网络连接。");
                }
            });
        }

        var currentMonitorId = {{ task.id }}; // 全局变量来存储当前的monitor_id
        $('#confirmDeleteButton').click(function () {
            if (currentMonitorId !== null) {
                deleteItem(currentMonitorId); // 使用设置好的monitor_id执行删除
            }
        });

        function deleteItem() {
            // 这里实现删除逻辑
            console.log("执行删除操作");
            // 假设删除操作成功，展示删除成功提示
            $.ajax({
                url: "/task/delete_tasks/" + currentMonitorId,
                type: "GET",
                contentType: "application/json"
            }).done(function (response) {
                // 操作成功的逻辑
                if (response['status'] === 'success') {
                    console.log(response); // 打印成功的响应
                    $('#deleteConfirmModal').modal('hide'); // 隐藏删除确认模态框
                    $('#noticeMessage').text("删除成功");
                    $('#noticeModal').modal('show'); // 展示删除成功提示模态框
                }
            }).fail(function (jqXHR, textStatus, errorThrown) {
                // 请求失败的处理
                console.error("Request failed: " + textStatus + ", " + errorThrown);
                if (jqXHR.status) {
                    switch (jqXHR.status) {
                        case 404:
                            alert("未找到指定的监控任务。");
                            break;
                        case 500:
                            alert("服务器错误，请稍后重试。");
                            break;
                        default:
                            alert("发生未知错误，请联系管理员。");
                    }
                } else {
                    alert("发生未知错误，请检查网络连接。");
                }
            });
        }
    </script>


{% endblock %}
